package com.nf.db.handler;

import com.nf.db.ResultSetHandler;

import java.lang.reflect.Field;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

import static com.nf.db.RowProcessor.DEFAULT_ROWPROCESSOR;

public class BeanHandler<T> implements ResultSetHandler<T> {

    private Class<?> beanClz;

    /**
     * 因为使用BeanHandler时，一定要有一个实体类的class对象
     * 所以这里没有设计出默认构造函数
     *
     * @param beanClz
     */
    public BeanHandler(Class<?> beanClz) {
        this.beanClz = beanClz;
    }

    @Override
    public T handle(ResultSet rs) throws SQLException {
        return rs.next() ? DEFAULT_ROWPROCESSOR.toBean(rs, this.beanClz) : null;
    }

}
